package com.hb.unic.core.exception;

import com.hb.unic.core.exception.support.ExceptionHandler;

import lombok.Getter;

/**
 * 业务异常
 *
 * @since v1.0，2023/8/26 13:58，create by Mr.Huang.
 */
@Getter
public abstract class BusinessMessage extends RuntimeException implements IFriendlyMessage {

    /**
     * 序列化
     */
    private static final long serialVersionUID = -7609091570577553080L;

    /**
     * 错误标识
     */
    private final String errorCode;

    /**
     * 附带参数
     */
    private final Object[] args;

    /**
     * 构造方法
     * 
     * @param errorCode 错误码
     */
    public BusinessMessage(String errorCode) {
        this(errorCode, (Object[])null);
    }

    /**
     * 构造方法
     * 
     * @param errorCode 错误码
     * @param args 参数
     */
    public BusinessMessage(String errorCode, Object... args) {
        super();
        this.errorCode = errorCode;
        this.args = args;
    }

    /**
     * 重写构造方法
     * 
     * @return 错误信息
     */
    @Override
    public String getMessage() {
        return ExceptionHandler.getMessage(errorCode);
    }
}
